home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1995 November / EnigmA AMIGA RUN 02 (1995)(G.R. Edizioni)(IT)[!][issue 1995-11][Skylink CD].iso / earcd / misc / nnn.lha / nnn1.35 / src / NetWriteConfig.c < prev    next >
C/C++ Source or Header  |  1995-03-22  |  3KB  |  98 lines

  1.  
  2. /*
  3.  *  $Id: NetWriteConfig.c 1.9 1995/03/22 01:03:46 daltern Exp $
  4.  *
  5.  *    Function    NetWriteConfig
  6.  *    Programmer    Nicholas d'Alterio
  7.  *    Date        14/03/95
  8.  *
  9.  *  Synopsis:  This function writes out the neural network configuration
  10.  *             file to stdout.
  11.  *
  12.  *  $Log: NetWriteConfig.c $
  13.  * Revision 1.9  1995/03/22  01:03:46  daltern
  14.  * Adapted to write each layers weights on a different line
  15.  *
  16.  * Revision 1.8  1995/03/20  23:39:36  daltern
  17.  * Added printing of gain factor to config file
  18.  *
  19.  * Revision 1.7  1995/03/17  18:15:03  projects
  20.  * Changed so that weights ending on a bias are not printed
  21.  *
  22.  * Revision 1.6  1995/03/17  17:54:09  projects
  23.  * Ammended Weights writing section to print only elements used
  24.  * in line with change in v1.22 nnn.c
  25.  *
  26.  * Revision 1.5  1995/03/16  19:28:07  daltern
  27.  * Now prints extra parameter - momentum factor
  28.  *
  29.  * Revision 1.3  1995/03/16  17:31:56  daltern
  30.  * Stopped the printing of states to config file
  31.  *
  32.  * Revision 1.2  1995/03/14  22:59:32  daltern
  33.  * General clean up and commenting
  34.  *
  35.  *
  36.  */
  37.  
  38. #include "Neural.h"
  39.  
  40. void NetWriteConfig(NET netI, VECTOR vecS, float ***Weight, float seed, 
  41.       float learn_rate, float mom_fac, float accuracy, float vecs_correct, float gain )
  42.  
  43.  {
  44.  
  45.   register int i, j, k, cur_vec;
  46.  
  47.   fprintf(stdout,"#     Num   Learning   Momentum   Gain    Random      Accuracy     Percentage\n");
  48.   fprintf(stdout,"#    Layers    Rate     Factor             Seed                     Correct\n");
  49.  
  50.   fprintf(stdout,"\t%d   ", netI.NumLayers);
  51.   fprintf(stdout,"%f   "  , learn_rate);
  52.   fprintf(stdout,"%f  ", mom_fac );
  53.   fprintf(stdout,"%f  ", gain );
  54.   fprintf(stdout,"%f  "   , seed);
  55.   fprintf(stdout,"%f     "  , accuracy);
  56.   fprintf(stdout,"%f\n", vecs_correct);
  57.  
  58. /*
  59.  *  Write out the layer sizes.
  60.  */
  61.  
  62.   fprintf(stdout,"%s\n", DELIMITER[2]); 
  63.   for ( i = 0; i < netI.NumLayers; i++ ) 
  64.     fprintf(stdout,"%d\n", netI.LayerSize[i] );
  65.  
  66. /*
  67.  *  Write out the Weights section
  68.  */
  69.  
  70.   fprintf(stdout,"%s\n",DELIMITER[0]);
  71.   for ( i = 0; i < (netI.NumLayers-1); i++ ) {
  72.     for ( j = 0; j < (netI.LayerSize[i]+1); j++) {
  73.         for ( k = 1; k < (netI.LayerSize[i+1]+1); k++) {
  74.  
  75.               fprintf(stdout,"%f ", Weight[i][j][k]);           
  76.  
  77.         }   /* end for k */
  78.     }  /* end for j */
  79.       fprintf(stdout,"\n");
  80.   }   /* end for i */
  81.  
  82. /*
  83.  *  Write out the vectors
  84.  */
  85.  
  86.   fprintf(stdout,"%s\n",DELIMITER[1]);
  87.   for (cur_vec = 0; cur_vec < vecS.NumVecs; cur_vec++) {
  88.     for (i = 0; i < (netI.LayerSize[0]+1); i++ )
  89.         fprintf(stdout,"%f ", vecS.InVec[cur_vec][i]);
  90.         for ( i = 0; i < netI.LayerSize[netI.NumLayers-1]; i++) 
  91.         fprintf(stdout,"%f ", vecS.OutVec[cur_vec][i]);
  92.     fprintf(stdout,"\n");
  93.   }  /* end for cur_vec */
  94.  
  95.   return;
  96.  
  97. }   /* end function NetWriteConfig */
  98.